#include<string.h> требуется только для объявления функции char *strtor(string1,string2); находит символ в string1 char *string1; строка, содержащая символы char *string2; множество символов-ограничителей
Описание.
Функция strtok читает строку string1 как множество нуль или более знаков, служащих в качестве ограничителей для символов в string1. Символы в string1 могут отделяться одним или более ограничителем от string2. Символы в string1 разрываются столько раз, сколько вызывается strtok. При первом вызове strtok для заданной строки string1, strtok находит первый символ в string1, пропуская предыдущие ограничители. Указатель возвращается на первый знак. Для того, чтобы прочитать следующий символ из string1, функция strtok вызывается вместе с NULL значением для аргумента string1. Аргумент NULL строки string1 вызывает strtok для поиска следующего знака в предыдущей строке символов. Множество ограничителей может быть различным от вызова к вызову, так как string 2 может принимать любые значения.
Замечание.
String1 можно модифицировать вызовами strtok, так как после вызова strtok в string1 вставляется нулевое значение ('\0').
Возвращаемое значение.
При вызове strtok первый раз, она возвращает указатель на первый символ в string1 . При последующих вызовах в этой же самой строке символов, strtok возвращает указатель на следующий символ в строке. Указатель NULL возвращается, когда нет больше символов. Все символы оканчиваются нулем.
Пример.
#include <string.h> #include <stdio.h> char *string = "a string, of , ,tokens"; . . . /* в следующем цикле собираются символы (отделенные пробе- лами или запятыми) из строки до тех пор, пока в ней ничего не ос- танется */ token = strtok(string,","); while (token !=NULL) { /* вставляет код для обработки символа в цикле */ . . . token = strtok(NULL,","); /* берет следующий символ */ } /* возвращаемыми символами являются "a","string", "of", "tokens". Следующий вызов strtok возвратит NULL и цикл завершает- ся */